#!/usr/bin/python
# vim:fileencoding=utf8

import concept
from gnTai.usefull_staff.textprocess import *
from gnTai.words.article import Article

class Object(concept.Concept):
    def __init__(self, word, definite=None, plurum=None, qualities=[], **kwargs):
        """
        Инициализация объекта.
            name --- название объекта (англиское)
            indefinite --- неопределенный/определенный ~ True/False
            pl --- множественное/единственное число ~ True/False
            qualities --- список качеств - определений            
        """
        concept.Concept.__init__(self, word)
        self.__def = definite
        self.plurum = plurum
        self.__qualities = qualities
    
    def __str__(self):
        return self.to_string()
    
    def to_string(self, **form):
        words = []
        words.append(Article.to_string(definite=self.__def, plurum=self.plurum))
        words += [str(x) for x in self.__qualities]
        words.append(self.word.to_string(plurum=self.plurum))
        return words2text(words)
    
        
    def set_form(self, **form):
        """
        Устанавливает форму существующего объекта.
        """
        self.plurum = form.get('plurum', False)
        self.definite = form.get('definite', True)
        self.qualities = form.get('qualities', [])
